電力認識スレッドスケジューリングおよびプロセッサーの動的使用
专利摘要:
電力認識スレッドスケジューリングおよびプロセッサーの動的使用を行うための手法および装置が開示される。一部の態様では、マルチコアシステムが、コアの活動を判定するために監視される。コアの活動は、電力節約プランとパフォーマンスプランとのバランスを取る電力ポリシーと比較できる。コアの1つまたは複数は、比較に応答して、マルチコアシステムによる電力消費を減少させるために保留にすることができる。追加の態様で、コアを動的に保留にする、または保留解除するために電力認識スケジューリングが所定のインターバル中に実行できる。さらに別の態様には、コアの活動および電力ポリシーの比較に応答して保留解除コアの電力状態を調整するステップがある。 公开号:JP2011515776A 申请号:JP2011501858 申请日:2009-02-16 公开日:2011-05-19 发明作者:キシャン,アルン・ユー;ジャッジ,ニコラス・エス;ドゥオン,イーミン;マーシャル,アレン;リッツ,アンドリュー・ジェイ 申请人:マイクロソフト コーポレーション; IPC主号:G06F1-32
专利说明:
[0001] [0001]電力消費のコンピューターシステム管理は、バッテリーの稼働能力を拡張するため、および全体の電力消費を減少させるために重要であり、そのどちらもが経済上および環境上の利益をもたらす。非モバイルコンピューターの場合でも、電力所要量の減少は、重要な全域リソースを節約し、通常電力の中断中などにバッテリーバックアップシステムに依存する場合の稼働を延長するのに役立つ。] [0002] [0002]システム動作中はコンピューティングシステムのほとんどのコンポーネントが電力を使用するが、プロセッサーは、システム電力を不釣り合いな配分で使用する。民生用中心のシステムを含めて、多くのコンピューターシステムが複数のプロセッサーおよび/または複数のコアを備えたプロセッサーを有する。複数のプロセッサーを有すると、コンピューターは並行して実行する作業レベルを上げることができるが、プロセッサーを追加すると、電力消費も増大する。最新のプロセッサーは、非常に低電力のアイドル電力状態を特徴としており、それは、マルチコアシステムのコア別に適用することができ、オペレーティング・システムによって制御できる。さらに、プロセッサー頻度は、システムによる電力使用を減らすためにコア単位、またはコアグループ単位で基準化することができる。] [0003] [0003]この概要では、以下の「発明を実施するための形態」でさらに説明される、電力認識スレッドスケジューリングおよびプロセッサーの動的使用を行う概念を簡略化して紹介する。この概要は、特許請求の範囲の主題の本質的な特徴を特定するようには意図されておらず、特許請求の範囲の主題の範囲を決定するために使用されるようにも意図されていない。] [0004] [0004]電力認識スレッドスケジューリングおよびプロセッサーの動的使用を行うための例示的な手法および装置が開示される。1つまたは複数の実施形態によれば、マルチコアシステムが、コアの活動を判定するために監視される。コア用のパフォーマンスおよび電力節約プランを開始するために電力ポリシーが取得される。電力ポリシーおよびコアの活動に基づいてマルチコアシステムのコアのうちの1つまたは複数が保留にされる(システム指定の低電力状態にされる)。1つまたは複数のコアが保留にされていると、保留解除されているコアは、残りのシステム活動のすべてを扱うように任される。一部の実施形態では、電力ポリシーは、電力節約またはシステムパフォーマンスに影響を与える追加要因を含むように修正できる。少なくとも1つの他の実施形態では、マルチコアシステムは、1つまたは複数の保留解除されているコアを保留にすることに加えて、その1つまたは複数のコアの電力状態を動的に調整することができる。] [0005] [0005] 詳細な説明は、添付の図面を参照しながら説明される。図面において、参照番号の左端の数字は、その参照番号が最初に使用された図面を表す。異なる図面内の同じ参照番号は、類似または同一の項目を指す。] 図面の簡単な説明 [0006] [0006]電力認識スレッドスケジューリングおよびプロセッサーの動的使用の少なくとも1つの実施形態を実施するために使用できる例示のシステム図である。 [0007]プロセッサーへの作業の割り振りを可能にするためにスレッドスケジューラーでコア保留マスクを作成し、そのマスクを実施するプロセスの少なくとも1つの実施形態を示した流れ図である。 [0008]図3Aは、本開示の少なくとも1つの実施形態による例示のコア利用率を示した図である。] 図3A [0007] 図3Bは、本開示の少なくとも1つの実施形態による例示のコア利用率を示した図である。より具体的には、図3Bは、図3Aに示された例示のシステムコア利用率に対応した例示の修正版コア利用率を示した図である。 [0009]スレッドスケジューリングおよびプロセッサーの動的使用を評価し、プロセッサーのための修正された構成を決定する例示のプロセスの少なくとも1つの実施形態を示した流れ図である。 [0010]電力認識スレッドスケジューリングおよびプロセッサーの動的使用を行う例示のプロセスの少なくとも1つの実施形態を示した流れ図である。 [0011]さらにドメインアイドルアカウンティングを含む、電力認識スレッドスケジューリングおよびプロセッサーの動的使用を行う例示のプロセスの少なくとも1つの実施形態を示した、もう1つの流れ図である。 [0012]電力認識スレッドスケジューリングおよびプロセッサーの動的使用のための追加設定を行う、少なくとも1つの実施形態を示した例示の流れ図である。] 図3A 図3B 実施例 [0008] [0013]プロセッサーは、電力をまったく消費しない(ゼロ・ワット)アイドル状態を含めて、低電力アイドル電力状態を可能にすることができる。オペレーティング・システムは、実行する有用な作業がない時、1つまたは複数のプロセッサー(または単に「コア」)をアイドル電力状態(すなわち、プロセッサースリープ状態)にさせることができる。このような低電力状態で過ぎる時間を最大にすれば、システムのエネルギー効率を高め、および/またはバッテリーパフォーマンスを拡大することができる。これらのプロセッサーアイドル電力状態に加えて、プロセッサーは、プロセッサーの頻度を、単独で、またはプロセッサーコア電圧の同時減少と関連付けて基準化するための制御機能を提供することもできる。これらの制御機能は、総称してプロセッサー電力管理(PPM)機能と呼ぶことができる。] [0009] [0014]プロセッサーは、1秒で数十億個の命令の実行を促進することができる。プロセッサーは、コンピューター命令を実行するためにそのように高い能力を有しているが、作業負荷に、短い期間、相当な差異がある可能性がある。例えば、タイピストのキーストローク間の遅延ほどの短い期間に、PPMは、プロセッサー電力を瞬間的に減少させる、または短時間のスリープ状態にすらすることができる可能性がある。1秒の数分の1の電力は妥協可能のように思われるが、より長い期間にわたる累積電力の節約は相当なものになる可能性がある。] [0010] [0015]したがって、プロセッサーがより高い電力状態を正当化する適切な作業負荷を有していない時、PPMは、使用されていないプロセッサーを低電力状態またはスリープ状態(「保留」状態)にさせることにより、電力需要を減らすことができる。保留コアは、最小の電力量を使用するか、または電力をまったく使用しないプロセッサーアイドル電力状態(ACPIC状態)になることができる。システムで実行すべきアクティブ作業は、保留解除されているプロセッサー上で時間多重化される。] [0011] [0016]したがって、電力認識スレッドスケジューリングおよびプロセッサーの動的使用の実施を容易にするための手法および装置は、本明細書では、以下の様々なセクションに分けて説明される。] [0012] 例示の環境 [0017]図1は、電力認識スレッドスケジューリングおよびプロセッサーの動的使用の少なくとも1つの実施形態を実施するために使用できる例示のシステム100である。システム100は、コンピューティングデバイス102を含む。例えば、コンピューティングデバイスは、他の可能なコンピューティングデバイスの中でも特にモバイルコンピューター102(1)、デスクトップコンピューター102(2)、および/またはサーバー102(N)であってよい。非常に基本的な構成において、コンピューティングデバイス102は、一般的に1つまたは複数のプロセッサー(「プロセッサー」)104を含む。例えば、プロセッサー104は、並列または直列に構成された複数の独立プロセッサーのうちの少なくとも1つおよびマルチコアプロセッシングユニットであってよく、単独の構成でも、様々な組み合わせの構成でもよい。マルチコアプロセッサーは、同じチップ上または集積回路上に2つ以上のプロセッサー(「コア」)を備えることができる。用語「プロセッサー」、「コア」、および「論理プロセッサー」は、特定の要素を参照して特に断りがない限り、本開示全体にわたって交換可能である。] 図1 [0013] [0018]加えて、コンピューティングデバイス102はシステムメモリー106を含む。コンピューティングデバイスの厳密な構成およびタイプに応じて、システムメモリー106は揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリーなど)、またはその2つ何らかの組み合わせでよい。システムメモリー106は、一般的にはオペレーティング・システム108、1つまたは複数のプログラムモジュール110を含み、プログラムデータ112を含むこともある。] [0014] [0019]オペレーティング・システム108は、プロセッサー電力管理(PPM)機能の使用を指示することを担当するカーネル電力マネージャー114を含むことができる。カーネル電力マネージャー114は、パフォーマンス状態(p状態)または線形スロットル状態(t状態)を使用してプロセッサー104のパフォーマンス(例えば、速度)を調整することができる。例えば、カーネル電力マネージャー114は、可能な時にはエネルギーを節約するために、プロセッサー104の電力消費と現在の作業負荷とのバランスを取ることができる。加えて、または別法として、カーネル電力マネージャー114は、プロセッサー104が作業負荷の需要に応じて最大処理能力を発揮できるようにすることもできる。さらに、カーネル電力マネージャー114は、プログラムモジュール110のスレッドなど、実行準備されているアクティブスレッドがない時、プロセッサー104のうちの1つまたは複数を低電力のスリープ状態にさせることができる。] [0015] [0020]オペレーティング・システム108は、システム100内のすべての使用可能なプロセッサー104全体にわたって作業単位(スレッド)を待機させる、スケジューリングする、優先順位付けする、およびディスパッチするためのモジュールを提供することができ、これらのモジュールは、総称してカーネルスレッドスケジューラー116と呼ばれるモジュールの集合として表すことができる。実行準備ができているアクティブスレッドがある場合、カーネルスケジューラー116は、1つまたは複数のモジュールを介して、そのスレッドをいずれかの使用可能なコアに処理のためにディスパッチする。] [0016] [0021]一般的に言えば、カーネル電力マネージャー114およびカーネルスケジューラー116は、プロセッサー104の制御および稼働に関して持つ利害が競合する。カーネル電力マネージャーは、プロセッサー104の電力消費を最小にするように構成され、そのため、プロセッサー104のうちの1つまたは複数の頻度および/または電力状態を減少させようとする。逆に、カーネルスケジューラー116は、処理のスループットを最大にするように構成され、そのため、すべてプロセッサー104に作業を分散させるほうを好む。] [0017] [0022]コンピューティングデバイス102は、追加機能または追加の機能性を有することができる。例えば、コンピューティングデバイス102は、例えば、磁気ディスク、光ディスク、またはテープなど、追加のデータストレージデバイス(取り外し可能および/または取り外し不可)を備えることもできる。そのような追加ストレージは、図1に、取り外し可能ストレージ118および取り外し不可ストレージ120として示されている。コンピューターストレージ媒体には、コンピューター読み取り可能な命令、データ構造、プログラムモジュール、または他のデータなどの情報を保管するための、任意の方法または技術で実装される揮発性および不揮発性、取り外し可能および取り外し不可の媒体などがあり得る。システムメモリー106、取り外し可能ストレージ118、および取り外し不可ストレージ120はすべて、コンピューターストレージ媒体の例である。コンピューターストレージ媒体には、限定ではないが、RAM、ROM、EEPROM、フラッシュメモリー、または他のメモリー技術、CD−ROM、デジタル多用途ディスク(DVD)あるいは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは所望の情報を保管するために使用できて、コンピューティングデバイス102によってアクセスできる他の媒体がある。そのようなコンピューターストレージ媒体はどれでも、コンピューターデバイス102の一部になり得る。] 図1 [0018] [0023]コンピューティングデバイス102は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなど、1つまたは複数の入力デバイス122を備えることもできる。ディスプレイ、スピーカー、プリンターなど、1つまたは複数の出力デバイス124も、直接に、またはコンピューティングデバイス102への接続を介して備えることができる。] [0019] [0024]コンピューティングデバイス100は、そのデバイスがネットワークなどを介して他のコンピューティングデバイスと通信できるようにする通信接続126も備えることができる。通信接続126は、通信媒体の1つの例である。通信媒体は、一般的に、コンピューター読み取り可能な命令、データ構造、またはプログラムモジュールによって具体化できる。用語「変調データ信号」とは、信号の特性のうちの1つまたは複数が、信号内の情報を符号化するような方法で設定または変更された信号を意味する。例であって、限定ではないが、通信媒体には、ワイヤードネットワークまたは直接ワイヤード接続などのワイヤード媒体、ならびに音波、RF、赤外線および他のワイヤレス媒体などのワイヤレス媒体がある。コンピューター読み取り可能な媒体は、コンピューティングデバイス102によってアクセス可能な任意の入手可能な媒体であってよい。例であって、限定ではないが、コンピューター読み取り可能な媒体は、「コンピューターストレージ媒体」および「通信媒体」で構成することができる。] [0020] [0025]本明細書では、様々なモジュールおよび手法が、1つまたは複数のコンピューターまたは他のデバイスによって実行されるコンピューター実行可能な命令、例えば、プログラムモジュールなどという一般的なコンテキストで説明されることがある。一般的に、プログラムモジュールには、特定のタスクを実行するための、または特定の抽象データタイプを実装するためのルーチン、プログラム、オブジェクト、コンポーネント、データ構造などがある。このようなプログラムモジュールなどは、仮想マシンで、または他のジャストインタイムコンパイル実行環境などでネイティブコードとして実行することもできるし、ダウンロードして実行することもできる。一般的には、プログラムモジュールの機能は、様々な環境での所望に応じて、結合または分散することができる。これらのモジュールおよび手法を実装するには、モジュールおよび手法を何らかの形のコンピューター読み取り可能な媒体に保管することもできるし、そのような媒体を介して伝送することもできる。] [0021] 例示のプロセッサー構成 [0026]図2は、プロセッサーへの作業の割り振りを可能にするためにスレッドスケジューラーでコア保留マスクを作成し、そのマスクを実施するプロセス200の少なくとも1つの実施形態の流れ図を示している。プロセス200は論理的な流れ図の中でブロックの集まりとして示されており、ブロックの集まりは、ハードウェア、ソフトウェア、またはそれらの組み合わせで実施できる動作のシーケンスを表している。ソフトウェアのコンテキストでは、ブロックは、1つまたは複数のプロセッサーによって実行されると、列挙された動作を実行するコンピューター実行可能な命令を表している。一般的に、コンピューター実行可能な命令には、特定の機能を実行する、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などがある。動作が説明される順序は、限定として解釈するようには意図されておらず、説明されるブロックは、このプロセスを実施するために、任意の数を任意の順序で、および/または並行に結合することができる。本開示の中で説明されるプロセス200以外のプロセスもそれに応じて解釈すべきものとする。説明の目的で、プロセス200は、図1のシステム100を参照しながら説明される。] 図1 図2 [0022] [0027]図2に示されているように、202で、システムメモリーにコア保留マスクが作成される。例えば、202で、カーネル電力マネージャー114がコア保留マスクを作成することができるが、カーネル電力マネージャー114はオペレーティング・システム108内に常駐している。例示のコア保留マスク(「ビットマスク」または単に「マスク」)204は、対応するコアを表すセルを提供できる。図2に示されているように、例示のシステムは8個のコアを有しているが、使用されるコアはそれより多くても、少なくてもよい。ビットマスク204は各セルにビット値を有するが、各セル内で「1」は保留コアを表し、「0」は保留解除コアを表す。保留コアとは、低電力のスリープ状態にされたコアである。一部の実施形態では、保留コアは電力消費がまったくなく、したがって、ゼロ・ワットを消費する。一部の実施形態では、コアは、共用ハードウェア回路などの依存関係を有する。両方のコアを低電力状態にできる場合、依存関係も暗黙に低電力状態にできる。したがって、一方のマスクに比べて電力節約を最大にするコア保留マスクが選択できる。例えば、単一のプロセッサーソケット内のすべてのコアをオフにすると、2つのプロセッサーソケット内のコアの半分をオフにするよりも、より多くの電力を節約できる可能性がある。ビットマスク204は、(右から左へ、0から7へ)番号3、5、6および7の4つの保留コアを有する。その結果、コア0、1、2および4は、保留解除コアということになる。] 図2 [0023] [0028]1つまたは複数の実施形態によれば、206で、ビットマスク204が反転されて、反転ビットマスク208が作成できる。例えば、カーネル電力マネージャー114が反転ビットマスク208を作成できる。反転ビットマスクは、各セル(すなわち、コア)に対して反転されたビット値を有する。したがって、「1」を指定されたコアはデータを処理するために選択することができ、「0」を指定されたコアはアプリケーションスレッドを処理するために選択することはできない。] [0024] [0029]210で、カーネルスケジューラー116などによってアプリケーションスケジュールが決定される。例えば、コンピューティングデバイス102がプログラムモジュール110のうちの1つまたは複数を実行中であることは可能である。プログラムモジュール110のうちのいくつかは単一スレッドのプログラムを含み、他のプログラムモジュールはマルチスレッドのモジュールを含むことが可能である。一般的に、カーネルスケジューラー116は、優先順位、コアの可用性、アフィニティ(スケジューリング制限)および他の要因など、多くの要因に基づいて使用可能なコアに各スレッドをスケジューリングする。スレッドの数が使用可能なコアの数を超えると、カーネルスケジューラー116はスレッドを交替させるか、そうでなければ、スレッドを、それらのスレッドが結果的に確実に前進するように(すなわち、プロセッサーによって実行されるように)スケジューリングする。プロセッサー104は単一のコア上で1秒間に何回もスレッドを交替させることができ、そのため、カーネルスケジューラー116は、使用可能なコアにスレッドを有効にスケジューリングする機会が与えられる。] [0025] [0030]多くのプログラムモジュールはスレッドを特定のプロセッサーに割り当てないが、一部の複雑なプログラムモジュールは、スレッドが特定のプロセッサーによって実行されることを必要とし、これは、スレッドのプロセッサーアフィニティを設定すると言われる。プログラムモジュールスレッドアフィニティマスク212は、プログラムモジュール110によって決定された、スレッドの処理のために要求されるコアを表している。例えば、第1のプログラムモジュールは、スレッドがカーネルスケジューラー116によってコア0および1上にスケジューリングされなければならないことを表した第1のアフィニティマスク212(1)を有することができる。第2のプログラムモジュールに関連付けられた第2のアフィニティマスク212(2)は、スレッドがコア2および3にスケジューリングできることを表すことができ、もう1つのプログラムモジュールは、スレッドが、使用可能なコアのどれにでもスケジューリングできることを表した(すべてのコアが選択されたことが示されている)アフィニティマスク212(P)を有することができる。アフィニティマスク212(P)は、コアへのスレッドの割り振りに事実上制約がないという点で特殊な事例であることに留意されたい。] [0026] [0031]一部の実施形態では、214で、プログラムモジュールアフィニティマスク212が、一度に1つずつ、「AND」演算子216を使って反転ビットマスク208と結合されて、適格なプロセッサーのセットが決定され、使用可能プロセッサーセット218が得られる。220で、第1のアフィニティマスク212(1)を使用して第1の使用可能プロセッサーセット218(1)が作成される。プロセス200は、各プログラムモジュールに対する(すなわち、反転ビットマスク208とアフィニティマスク212の各組み合わせに対する)動作210、214および220の反復プロセスを含むことができる。このように、動作210、214および220の第2の反復では、第2のアフィニティマスク212(2)を使用して第2の使用可能プロセッサーセット218(2)が作成される。] [0027] [0032]上述のように、各コア(例えば、コア0、・・・コア7)に対するビット値を使用して、スレッドをスケジューリングするための使用可能プロセッサーセット218が決定される。「AND」演算子216は、両方のオペランドが、特定のコアに対してスレッドがアフィニティを設定されていることを表す「1」を有している場合にコアビット値「1」(すなわち、1つのコアに対する結合されたビット値)を返す。例えば、第1のアフィニティマスク212(1)が反転ビットマスク208と結合される時、コア0および1は両方ともアクティブコアであり、コアビット値「1」を返すが、残りのコア2〜7は、第1の使用可能プロセッサーセット218(1)に例として示されているようにコアビット値「0」を有する。] [0028] [0033]第2のアフィニティマスク212(2)はコア3にコア値「1」を有するが、反転ビットマスク208は、コア3が保留されることを表している。カーネルスケジューラー116は、第2のアフィニティマスク212(2)に合わせて反転ビットマスクを上書きすることを選択することができ、そのことは、コア3がコア値「1」を有する第2の使用可能プロセッサーセット218(2)に表されており、したがって、反転ビットマスク208で保留と指定されているコア(後で保留解除できる)に作業を切り替えることができる。一部の実施形態では、スレッドは任意の数のヒューリスティックを用いてスケジューリングできる。反転ビットマスク208を無視して、スレッドのアフィニティに関して最適なコアを使用することができる。最適なコアが保留にされている場合、フォールバックが、優先コアと同じNUMA(Non−Uniform Memory Access:非一律メモリーアクセス)ノード内のプロセッサーを選択することを含んでよい。スケジューラーは、コア保留反転マスクをスレッドを実行するための優先場所のヒントとして扱うが、最もパフォーマンスが良い選択肢と思われるものという厳しい制限(厳しいアフィニティ)の中から選択する。] [0029] [0034]アフィニティマスク212(P)のようにすべてのコアが使用可能と指定されている場合、プログラムモジュールは、そのマスクはスレッドがどのコアによって実行されることも許容することを示されているので、ビット値は無視できる。アフィニティマスク212(P)は、反転ビットマスク208で示されたコアのどれにでも、例えば、コア0、1、2および4に、使用可能プロセッサーセット218(P)で「1/0」を示すコア値で表されるように、スケジューリングされたコアを有することができる(「1/0」は「1」または「0」を表し、アフィニティマスク212(P)の作業をスケジューリングできるためには、少なくとも1つのコアはコア値「1」を有する必要がある)。一部の実施形態では、使用可能プロセッサーセット218(P)は、使用可能なコアへの作業の割り振りを決定する時に、保留解除された、アイドルなコアを選択することができる。作業の切り替えは、作業をコア0、1、2および3に割り振ることができ、したがって、コア4を後の処置で使用せず、おそらく保留のままにすることが理想的である。以下で説明されるように、他を検討することにより、アフィニティマスク212(P)に応じてどのコアが作業を割り振られるかが決定できて、優先場所を作成することができる。例えば、優先場所は、オプショナルのメモリーアクセスパフォーマンスなどの要因に基づいてもよい。] [0030] [0035]動作210、214および220を使用して、図2を参照して上述されたように、スレッドをスケジューリングすることができる。加えて、プロセス200内で動作210、214および220によって他の作業、例えば、遅延プロシージャー呼び出し(DPC)、タイマー、割り込みの処理、または他のプロセッサー作業などが実行できる。] 図2 [0031] [0036]1つまたは複数の実施形態によれば、図2は、タイムスライスを行うためのコアの使い方例222を示している。例えば、使用可能プロセッサーセット218に基づくアクティブなコアの組み合わせは、制限がなければ100ミリ秒などの所与の時間チェックインターバルの間、コアの使い方222のような結果になり得る。コア使い方222のコア4は、上述のように、作業が使用可能プロセッサーセット218(P)のコア4にスケジューリングされるかどうかに応じて「使用」と表示されることもあれば、表示されないこともある。カーネル電力マネージャー114から見ると、コアの使い方222は、コア4にコア値「0」を有し、したがって、保留解除コアの数が最小になり、その結果、電力消費が減少することが理想的である。コアの使い方222に関係なく、次のタイムスライス用に新しいコア保留マスクを作成することができるが、その作成では、コアの使い方222からの情報を使用して新しいコア保留マスクを決定することができる。いくつかの事例では、コア2が第2のアフィニティマスク212(2)を満足させるに十分な処理利用率を有する可能性があるので、コア3は不要である可能性があるが、コア3はそれでも保留解除コアである。] 図2 [0032] [0037]図3Aおよび図3Bは、本開示の少なくとも1つの実施形態による例示のコア利用率を示している。より具体的には、図3Bは、図3Aに示された例示のシステムコア利用率に対応した例示の修正版コア利用率を示している。] 図3A 図3B [0033] [0038]1つまたは複数の実施形態によれば、図3Aは、多数のコア302、304、306および308を含むシステム300を示しているが、システム300の代替実施形態では、含まれるコアはそれより多くても、少なくてもよい。カーネル電力マネージャー114は、電力ポリシーを使用してコアを制御することができる。電力ポリシーはアクティブコアの数を決定することができ、カーネル電力マネージャー114が、使用可能なコアのセットをどのように計算できるかに影響を与える可能性がある。電力ポリシーは、使用可能なコアの数を制限するために、またはカーネル電力マネージャー114が使用可能コアの数を基準化できるようにするために使用できる。プラットフォームによってサポートされるコアの数は異なるシステム間で違う可能性があり、そのため、いくつのコアが使用可能であるかを前もって知らずにカーネル電力マネージャーがコアの数を指定できるようにするために柔軟な体系が必要である。したがって、一部の実施形態では、使用されるコアの数は、最大コア利用率のパーセンテージで表すことができる。したがって、コアの実装には、コアの数を表す、次に使用可能な数に合わせてパーセンテージを丸めることが必要なことがある。例えば、コア使用パーセントが60パーセントと計算されることがあるだろう。システムが4つのコアを有している場合、そのパーセントは75%に丸めることができ、3つのコアが保留解除されて、1つのコアが保留にされる。] 図3A [0034] [0039]各コアは、コアのパフォーマンス状態とは関係なく、そのコアの合計時間に対する実行時間のパーセンテージとして表される、コアの作業負荷を表すコア利用率(「コア有用性」)310を有する。例えば、コア0 302はコア有用性80%を有することが可能であって、それは、コア「0」の作業負荷最大キャパシティより20%少ない作業を実行することを表す。したがって、コア有用性100%は最大キャパシティの作業を実行するコアを表し、0%のコア有用性を有するコアは、使用されないコアを表す。一部の実施形態では、カーネル電力マネージャー114はコア有用性310を監視することができる。] [0035] [0040]加えて、各コアは、パフォーマンス状態(高度な構成および電力インターフェース(ACPI)p状態)312を有することができる。p状態312は、コア頻度と電圧の設定であり、カーネル電力マネージャー114によって制御される。p状態312は、モーターのスロットル制御と似ている。100%というp状態312はコアの最大パフォーマンス状態を表し、50%というp状態312は、最大頻度が半分で、対応するコア電圧レベルが低下したコアを表す。コアの実際の電力消費がp状態312と一致しない、または比例しないことがあることに留意されたい。例えば、コアのp状態312を2倍にしても、コアの電力漏洩、コアの基本電力消費および/または他の要因など、他の要因のためにコアの電力消費は2倍にならないことがある。一部の実施形態では、カーネル電力マネージャー114が、電力ポリシーを参照することなどにより、p状態312を決定および/または制御できる。] [0036] [0041]各コアは、合計作業負荷キャパシティに関するコアの作業負荷を表す出力利用率値(「出力有用性」)314を有する。例えば、出力有用性314は、0〜10,000で基準化することができるが、ここで、0は、無の利用率を表し、10,000は最大利用率を表す。出力有用性314は、コア有用性310とp状態312を乗算することにより算出できる。例えば、コア0 302は、コア有用性80%およびp状態80%を有しているので、出力有用性は6,400である。一部の実施形態では、出力有用性314は、電力ポリシーを参照するなどしてコア保留決定を決めるため、および/またはp状態312設定値を決めるためにカーネル電力マネージャー114によって使用される。] [0037] [0042]一部の実施形態では、システム300は、コアブロック316、例えば、第1のコアブロック316(1)および第2のコアブロック316(2)を有することができるが、システム300に実装されるコアブロックはそれより多くても、少なくてもよい。コアブロック316は、単一の回路で複数のコアを有するプラットフォーム、例えば、デュアルコアまたはマルチコアプロセッサーを表すことができる。各コアブロック316は、固有の電力消費特性を有することができる。例えば、コアは、アクティブレベルの電力消費、コア漏洩、またはブロック内のコアのどちらかが保留解除されている時に発生する他の電力損失を有することができる。例えば、第1のコアブロック316(1)内の両方のコアが保留解除されていて、10,000の出力有用性を有している場合、結合された電力消費は2xワットになり得る。第1のコアブロック316(1)内のコア0 302が後で保留にされ(例えば、出力利用率が0である)、コア1 304が変更されないままの場合、コアブロック316に関連付けられた、電力漏洩、アクティブな電力消費および/または他の要因などの要因のために、結合された電力消費はxワットより大きくなる可能性がある。コア1が後で保留にされた場合、結果の電力消費は0ワットになり得る。したがって、他のコアが後で保留にされる前にコアブロック全体が保留になるようにコアを保留し、このように電力節約を最大にすることが有利であろう。] [0038] [0043]図3Aに示されているように、システム300の例示の実装では、コア3 308は保留にされており、他のコアは保留解除されている(すなわち、アクティブである)。コア3はp状態100%を有しているが、これは、コア3に電力が供給されることを表していないことがある。別の言い方をすれば、カーネル電力マネージャー114は、p状態を0%より大きいレベルにしたまま、コアを保留にすることができる。] 図3A [0039] [0044]利用率のシナリオの一例では、カーネル電力マネージャー114は、システム300の出力を算出して、最大合計システム有用性30,000(すなわち、3つの保留解除コア×10,000)=30,000)のうち、合計システム有用性12,600(すなわち、6,400+3,200+3,000=12,600)と決定することができる。上述の中で引用された利用率の数値は、事実上、合計システム有用性を使用して実行できる計算を説明するための数値として意図されているのであって、本開示に限定されるものではない。] [0040] [0045]図3Bは、修正されたシステム318の、図3Aに示された合計システム利用率に対応した例示の修正版コア利用率を示している。修正されたシステム318は、コア302、304、306および308の保留/保留解除状態が修正されている。上述のように、システム300を参照すると、合計システム有用性は、例の中で12,600と計算されている。したがって、合計システム有用性が2つのコアの最大利用率キャパシティより小さいので(すなわち、12、600<20、000)、カーネル電力マネージャー114は、現在の作業負荷の需要を満たすためのシステムの能力を落とさずに追加コアを保留にすることができる。一部の実施形態によれば、カーネル電力マネージャー114は、おそらく電力ポリシーまたは他の要因に基づいて、保留にすべきコアを選択できるが、このことは、システムのユーザーには完全に透過にすることができる。ユーザー透過性とは、電力効率の改善という基本目標を除いて、ユーザーが気付くシステムへの影響、またはアプリケーションのパフォーマンスへの影響がないことである。コア保留を実施するために必要な変更は、非常に低レベルのオペレーティング・システム内部コンポーネントに課すことができ、したがって、コア保留に関連した、エンドユーザーに対する動作上または体験上の変更はなくすことができる。] 図3A 図3B [0041] [0046]第2のコアが保留にされると、修正されたシステムの最大合計システム有用性は20,000(2コア×10,000)に落ちる。カーネル電力マネージャー114は、(図3Aで示された)以前の状態でアクティブであったコアのどれでも保留にすることができる。上述のように、コア2 306を保留にして、第2のコアブロック316(2)を完全に保留にして保留コアブロック320になるようにすることが有利であろう。したがって、保留コアブロック320にすると、コア2 306の代わりにコア0 302またはコア1 304を保留にすることに比べて、電力節約が大きくなる可能性がある。] 図3A [0042] [0047]システム318のユーザーに対する透過の変更に対応するためには、保留コア(コア2)の出力有用性が吸収されるか、残りの保留解除コア(すなわち、コア0およびコア1)に再割り振りされる必要がある。図3Aから、コア2の出力有用性は3,000であった。したがって、1つの事例では、保留解除コアは、各コアに、各コアに対して追加出力有用性の1,500を負担する修正出力有用性322を持たせることにより負担を均等に分担することができる。事例によって、有用性を保留解除コアに割り振る時、保留コアの合計有用性の他の分割を行ってもよい。例えば、保留解除コアは、キャパシティ(10,000に近い合計有用性であって、これは最大有用性である)の近くで稼働することができる。そのような事例では、より大きい帯域幅を有するコアは、保留コアの合計有用性のより多くを吸収することができる。] 図3A [0043] [0048]1つまたは複数の実施形態では、カーネル電力マネージャー114は、コア0 302およびコア1 304のコア有用性310を、それぞれ、79%および47%に調整することができる。加えて、カーネル電力マネージャー114は、保留解除コアの両方に対してp状態312を100%に上げることができる。したがって、修正されたシステム318の合計システム有用性は、システム300の合計システム有用性である12,600と等しいままである。] [0044] [0049]修正されたシステム318は、ユーザーには透過で、一方、修正されたシステム318の電力消費は減少させるコア修正に対応するための保留/保留解除状態、コア有用性310および/またはp状態312の1つの可能な修正を示している。しかし、システム318には、結果として電力消費を減少させ、結果としてユーザーに透過な多くの他の修正を行うことができる。例えば、コア1 304のコア有用性310を94%に上げ、p状態を50%に減らして、合計有用性を4700にすることができる。修正戦略は、カーネル電力マネージャー114とカーネルスケジューラー116の競合する利害関係を考慮に入れる電力ポリシーによって決定することができる。] [0045] [0050]電力ポリシーには、修正されたシステム318に影響を与える可能性がある他の考察事項を実装することができる。例えば、時間に敏感でないスレッド(例えば、バックグラウンドスレッド)は、コア保留の決定に、より小さい影響を与える可能性があるが、変更はユーザーに対して透過のままにある。より具体的には、所与のコアで実行される平均実行時間を全スレッド優先度にわたって分散させることを含むことにより、カーネル電力マネージャー114は、コアの算出された利用率を、低優先度のスレッドおよび作業負荷が高優先度スレッドおよび作業負荷ほどに重視されないように基準化することができる。] [0046] [0051]図4は、スレッドスケジューリングおよびプロセッサーの動的使用を評価し、プロセッサーのための修正された構成を決定する例示のプロセス400の少なくとも1つの実施形態の流れ図を示している。プロセス400は、オペレーティング・システム108内、および/またはシステムメモリー106に常駐している他のモジュールに加え、カーネル電力マネージャー114によっても実施できる。] 図4 [0047] [0052]1つまたは複数の実施形態によれば、カーネル電力マネージャー114は、(コア有用性310、p状態312などのうちから特に)出力有用性314を監視する期間を評価する。各スレッドを処理するために使用可能なタイムスライスと等しいか、より長い期間が選択できる。所与の頻度で、カーネル電力マネージャー114はコアの監視を開始することができる。] [0048] [0053]404で、カーネル電力マネージャー114は、合計システム利用率および最大合計システム利用率を算出できる。カーネル電力マネージャー114は、カーネル電力マネージャー114の電力節約の必要性とカーネルスケジューラー116のコア可用性(処理パフォーマンス)の必要性とのバランスを取るために、コア使用をどのように調整するかを決定するために電力ポリシー406を精査することができる。408で、他の要因を使用して、コア使用を調整するか、調整する場合、ユーザーにとって透過な変更などのシステム目標を達成するために、熱要件に対応するために、および/または他の制約に対応するためにどのように調整するかを決定することができる。] [0049] [0054]410で、カーネル電力マネージャー114は、コアの新しい構成を算出できる。例えば、カーネル電力マネージャーは、図2に示されるように、新しいビットマスク202を算出できる。1つまたは複数の実施形態では、410で、そのビットマスクは、使用可能プロセッサーセット218を作成するように調整できる。412で、カーネル電力マネージャー114は410からの構成を実装できる。一部の実施形態では、プロセス400は、所定の頻度を繰り返すことなどにより、動的コア割り振りの作成を繰り返すことができる。別法として、プロセス400は、所与の期間にわたる静的コア割り振りを作成してもよい。] 図2 [0050] 例示の動作 [0055]図5は、電力認識スレッドスケジューリングおよびプロセッサーの動的使用を行う例示のプロセス500の少なくとも1つの実施形態の流れ図を示している。プロセス500は、プロセスの順序付けおよび実施に関しては図2のプロセス200と同様に解釈すべきである。例えば、プロセス500の動作が説明される順序は限定として解釈されるようには意図されておらず、プロセスを実施するために、説明されるブロックは任意の数だけ任意の順に、および/または並列に結合することができる。説明の目的で、プロセス500は、図1のシステム100を参照しながら説明される。] 図1 図2 図5 [0051] [0056]1つまたは複数の実施形態によれば、「TimeCheck(時間チェック)」定期評価ルーチンは502から始まってよい。例えば、遅延プロシージャー呼び出し(DPC)が502から始まってよい。一部の実施形態では、各コア上で、時間値を表す電力ポリシーパラメータ「TimeCheck」、例えば、100ms、50ms、または別の時間値などによって構成される固定定期速度で実行されるDPCを介して状態マシンに入る。504で、カーネル電力マネージャー114はコアに関する指標を収集できる。例えば、DPCは、アクティブコアの指標のスナップを取るために現在アクティブな各コアに対して待機させられる。指標には、他の可能な指標の中でも特に、コア利用率、スレッド優先順位分散、各コアについて準備済みスレッドの平均待ち時間、および/またはアイドル状態の常駐性について成功と失敗の指標があり得る。] [0052] [0057]506で、カーネル電力マネージャー114はビットマスク、例えば、コア保留マスク204などを算出する。例えば、利用率しきい値、電力ポリシー、および/または何らかの依存関係に基づいて、アクティブコアの目標数を表す新しい値が算出できる。508で、カーネル電力マネージャー114によって統制されているプロセス200の一部を実施することなどにより、アクティブセットを更新して、使用可能プロセッサーセット218を作成することができる。] [0053] [0058]510で、アクティブセットがオペレーティング・システム108によって実装できる。512で、カーネル電力マネージャー114はコアが追加された(保留解除された)かを判定することができる。コアが保留解除された場合、514で、カーネルスケジューラー116は通知を受けることができて、スレッドをスケジューリングするために、保留解除されたコアの使用を開始できる。保留解除されたコアは、リモートスレッドスケジューリング(すなわち、異なるプロセッサーから)の目標にもなれるし、または他のプロセッサーからスレッドを選択することを積極的に選択することもできる。一部の実施形態では、保留解除されたコアで実行されるようにスレッドを再割り当てすることができ、それにより、他の保留解除されたコアから作業負荷を減らすことができる。] [0054] [0059]516で、期待されるコア出力利用率がカーネル電力マネージャー114によって算出できて、その期待されるコア出力利用率は506からの保留解除コアを含むことができる。したがって、506で決定されたアクティブコアの数を表す新しい値を使用して、期待されるプロセッサー利用率が算出される。518で、カーネル電力マネージャー114は、P状態を表す新しい値を算出できる。一部の実施形態では、各コア上で、そのコアの目標p状態を更新するためにDPCがスケジューリングされる。一例では、期待される利用率が上がると、512でコアが保留解除されていなければ、p状態値も大きくなる可能性がある。しかし、512でコアが保留解除されている場合、カーネル電力マネージャー114の電力節約の必要性とカーネルスケジューラー116の処理の必要性とのバランスを取るために、p状態は大きくなる可能性も、小さくなる可能性もある。] [0055] [0060]520で、カーネル電力マネージャー114は、p状態および/またはt状態(線形スロットル状態)の現行値を、518での計算結果に基づいて修正すべきかどうかを判定する。p状態および/またはt状態が520で変更される場合、カーネル電力マネージャー114は、522で、影響を受けるコアに対する移行DPCを待機させることができる。したがって、カーネルスケジューラー116によってスケジューリングされるスレッドは、520で実装された新しいp状態および/またはt状態で実行されるコアにスケジューリングできる。] [0056] [0061]524で、カーネル電力マネージャー114は、506でコアが保留にされたかを判定する。例えば、516での期待されるコア出力利用率は、現行利用率より小さい可能性がある。524でコアが保留にされた場合、カーネル電力マネージャー114は、526でカーネルスケジューラー116に、新しく保留にされたコアへのスレッドのスケジューリングを終了するように通知する。アクティブコアマスクに追加または除去されたコアの場合、そのコアに対してDPCがスケジューリングされる。図3Aおよび図3Bを参照しながら説明されたように、保留にされたコアからの作業は、1つまたは複数の保留解除コアに再割り振りすることができる。一部の実施形態では、新しく保留にされたコアは、利用可能な最深のc状態にすることができる。最後に、528でプロセス500が反復できる。] 図3A 図3B [0057] [0062]図6は、さらにドメインアイドルアカウンティングを含む、電力認識スレッドスケジューリングおよびプロセッサーの動的使用を行う例示のプロセス600の少なくとも1つの実施形態の流れ図を示している。プロセス600は、図5で説明されたサブプロセスの多くを含む、したがって、図5からのサブプロセスは再度説明されない。] 図5 図6 [0058] [0063]602で、カーネル電力マネージャー114は、ドメインアイドルアカウンティングが使用可能にされているかを判定することができる。ドメインアイドルアカウンティングが使用可能にされている場合、ドメインマスターは、604で、そのドメイン(例えば、コアブロック316または全コア)の指標のスナップを取る。] [0059] [0064]一部の実施形態では、ドメインアイドルアカウンティングは、696で、別の決定を開始することができる。ドメインアイドルアカウンティングが使用可能にされている場合、カーネル電力マネージャー114は、608で、ドメインの目標p状態を算出できる。最後に、610でプロセス600が反復できる。] [0060] [0065]図7は、追加の電力ポリシーの設定ならびに電力認識スレッドスケジューリングおよびプロセッサーの動的使用のための他の入力を行うプロセス700の少なくとも1つの実施形態の流れ図を示している。一部の実施形態では、コア保留は、プロセッサーのパフォーマンス状態に対して使用する目標状態を算出する既存の状態マシンの拡張機能として実施することができる。任意の所与の時点で使用するコアの正しい数は、プロセス700を参照しながら以下で説明されるように、多くの要因に基づいて決定される。] 図7 [0061] [0066]1つまたは複数の実施形態によれば、702で、現行電力ポリシーを使用して、使用するコアの数を設定することができる。704で、コアの最小数または最大数が設定できる。カーネル電力マネージャー114は、所与の作業負荷をエネルギー効率の良い方法で完了させるために必要なアクティブコアの数を算出できる。いくつかの事例では、最小数のコアを稼働させることは、電力節約のために有利になり得るし、カーネル電力マネージャー114にも利益をもたらし得る。逆に最大数のコアを稼働させることは、最高レベルのパフォーマンスを提供し得て、そのため、カーネルスケジューラー116に利益をもたらし得る。] [0062] [0067]706で、サブプロセス706(1)・・・、706(4)のうちの1つまたは複数を使用して、カーネル電力マネージャー114によってコア保留に関する追加の電力ポリシーパラメータが実装できる。706(1)で、コアを保留するため、および/または保留解除するための必要な時間インターバルが調整できる。例えば、コアを保留および/または保留解除する頻度は、インターバルを変更することにより操作できる。一部の実施形態では、コアは第1のインターバルで保留にされて、第2のインターバルで保留解除されることがある。例えば、電力節約を好むポリシーは、100msごとという頻繁さでコアを保留し、500msごとに保留解除するだけということもあり得る。] [0063] [0068]707(2)で、カーネル電力マネージャー114はポリシーを増加し、および/または減少させることができる。例えば、第1のポリシーオプションは、一度に、設定された数だけのコアを保留することができる。例えば、一度に1つのコアを保留できる。第2のポリシーオプションは、理想のコア利用率を達成するようにコアを保留または保留解除することができ、そのため、一度に複数のコアを保留および/または保留解除する。第3のポリシーは両極端の一方になり得る(できるだけ多くを保留するか、またはできるだけ多くを保留解除する)。] [0064] [0069]706(3)で、必要な利用率しきい値は、プロセッサーの忙しさに基づいて増やす、または減らすことができる。例えば、プロセッサーは、保留された状態または保留解除された状態の変更を、そのプロセッサー(または他のプロセッサー)が所与の期間にわたって忙しい状態を有するまで、受け入れないことがある。これは、プロセッサーが保留状態と保留解除状態の間で高速に連続して反転することを減らすことができる。] [0065] [0070]最後に、706(4)で、保留解除コアを基準化するためのポリシーが実施できる。例えば、カーネル電力マネージャー114は、現在のアクティブセット内のプロセッサーコアの数に基づいて、理想の目標プロセッサーパフォーマンス状態を算出することができる。電力節約、パフォーマンス、および特定の作業負荷に対する応答性の間で最良のトレードオフを行うには、カーネル電力マネージャー114は、より少ない数のプロセッサーをより高いパフォーマンス状態で稼働させるか、または反対に、より多くの数のコアをより低いパフォーマンス状態で稼働させることが有利であろう。] [0066] [0071]708で、コアおよびシステムヒューリスティックが、サブプロセス708(1)および708(2)のうちの1つまたは複数を使用して、カーネル電力マネージャー114によって実装できる。708(1)で、カーネル電力マネージャー114は、深いプロセッサーアイドル電力状態(スリープ状態)の成功した使い方に基づいて、必要なアクティブコアの数、およびアクティブに使用中のコアの最適なパフォーマンス状態を算出することができる。これにより、カーネル電力マネージャーは、より深いアイドル状態が、いつ、アクティブな(保留解除されている)コアのセット全体にわたって効果的に使用されないかを検出することができる。電力を節約し、それでもパフォーマンスを提供するには、より多くのコアを保留状態にし、確実に作業が効果的に実行されるように残りのアクティブコアのパフォーマンス状態を上げることが利益をもたらすであろう。] [0067] [0072]708(2)で、コアへの割り振り(割り当て)準備済みスレッドに対して平均待ち時間を使用することができる。例えば、カーネル電力マネージャー114は、準備済み状態のスレッドに対する平均待ち時間の分散を使用することによって必要になるプロセッサーコアの数を算出することができ、その結果、カーネル電力マネージャーは、使用中のコアの数を基準化して、準備済み状態のスレッドが実行できるようになるまでの待機時間を短縮し、このようにしてパフォーマンスおよび応答性を向上させることができる。1つの例において、多数のスレッドが実行される必要がある場合、各コアはスレッドを一度に1つしか処理できないので、コアのp状態を減少させながらコアを保留解除することが有利であろう。したがって、いくつかの事例では、コア可用性が高いほど、多数のスレッドを処理することができる。] [0068] [0073]710で、アイドル状態の依存関係をカーネル電力マネージャー114が使用して、コア保留の実装を調整することができる。カーネル電力マネージャー114が、どの特定のコアが保留されるべきか、または保留解除されるべきかを選択する時、カーネル電力マネージャー114は、最初に、コアのアイドル状態依存関係を調べて、どのコアが電力またはクロックリソースを共用できるかを判定し、共用制御に基づいて、最も電力効率の良い方法でコアを保留または保留解除することを選択できる。] [0069] [0074]712で、1つまたは複数のコアを保留または保留解除するかを決定する時、パフォーマンスとスロットル状態の関係が検討されてもよい。パフォーマンス状態またはスロットリング制御を共用するコアは、より大きい電力効率を実現するために一緒に保留または保留解除されてよい。] [0070] [0075]714で、コアブロックの効率に関して、およびより具体的には、新しいコアブロック内で別のコアを保留する前にコアブロックを保留することに関して図3Aおよび図3Bで説明された依存関係のような、コアパッケージ(ブロック)の関係が検討されてもよい。最後に、716で、コア保留の検討を実施する時、カーネル電力マネージャー114によってメモリーの局所性が使用できる。例えば、共用メモリーバンク(例えば、NUMA(Non−Uniform Memory Access:非一律メモリーアクセス)ノード)を有する物理的プロセッサーパッケージをコアが共用するなどのパッケージ関係を2つ以上のコアが有することができる。共用メモリーバンクは、コアに、共用メモリーバンクを共用しないコアに比べてメモリーアクセス時間を短縮させることができる。] 図3A 図3B [0071] 結論 [0076]上述の手法、システムおよび装置は、電力認識スレッドスケジューリングおよびプロセッサーの動的使用を提供することに関する。手法、システムおよび装置は構造上の特徴および/または方法論的な行為に特有な文言で説明されているが、添付の特許請求の範囲は、必ずしも、上述の具体的な特徴または行為に限定されないことを理解されたい。より正確に言えば、上記の具体的な特徴および行為は、そのような手法および装置を実施する方法の例として開示されている。]
权利要求:
請求項1 複数のコアを有するコンピューティングデバイスのパフォーマンスと電力節約のバランスを取る方法であって、作業を処理するためにどのコアが使用されるかを定義する(202、204)ステップと、前記定義済みおよび未定義のコア両方に対するパフォーマンスおよび電力節約プランを開始するための電力ポリシーを決定する(210、214、406)ステップと、前記電力ポリシーに基づいて前記未定義のコアの少なくとも1つを保留にする(222)ステップとを含む方法。 請求項2 電力ポリシーを前記決定するステップが、コア保留マスクを作成する(202)ステップと、スレッドプロセッサーアフィニティを決定する(210)ステップと、使用可能プロセッサーセットを作成する(220)ために前記コア保留マスクと前記スレッドプロセッサーアフィニティマスクを結合する(214)ことにより、前記コア用の前記パフォーマンスおよび電力節約プランの少なくとも一部を提供するステップと、前記使用可能プロセッサーセット、および作業をアクティブに処理中のコア(222)に基づいて、どのコアが保留または保留解除されるかを算出するステップとをさらに含む、請求項1に記載の方法。 請求項3 電力ポリシーを前記決定するステップが反復プロセス(210、214、220)として動的に実行される、請求項2に記載の方法。 請求項4 前記電力ポリシーに基づいて前記定義済みコアの少なくとも1つを基準化する(512)ステップをさらに含む、請求項1に記載の方法。 請求項5 前記定義済みコアの少なくとも1つを前記基準化するステップが、電力節約を増やすためにコア有用性またはコアの電力状態(p状態)の少なくとも1つを調整する(512)ステップを含む、請求項4に記載の方法。 請求項6 前記未定義のコアの少なくとも1つを前記保留にするステップが、保留解除コアブロックが保留コアを含むかを判定する(316(2))ステップと、前記保留コアを有する前記保留解除コアブロックが判定されると、前記保留解除コアブロック内の少なくとも1つの保留解除コアを保留にする(320)ステップとを含む、請求項1に記載の方法。 請求項7 コアおよびシステムヒューリスティック(708)と、プロセッサー依存関係(710、714、718)と、コア保留用のコアポリシーパラメータ(706)とのうちの少なくとも1つを使用する前記電力ポリシーを修正するステップをさらに含む、請求項1に記載の方法。 請求項8 マルチコアシステム内のコアの活動を監視する(402)ステップと、前記マルチコアシステム内の各コアの電力節約と処理パフォーマンスとのバランスを取る、前記マルチコアシステム用の電力ポリシーを取得する(406)ステップと、前記電力ポリシーに基づいて前記コアの活動に応じて少なくとも1つのコアを保留にする(412)ステップとを含む方法。 請求項9 コアを前記保留にするステップが、コア電力状態を最小電力のプロセッサーアイドル電力状態(C状態)に減少させる(524)ステップを含む、請求項8に記載の方法。 請求項10 前記マルチコアシステム内の少なくとも1つの保留解除コアの電力状態を調整する(520)ステップをさらに含む、請求項8に記載の方法。 請求項11 前記コアの活動に応じて少なくとも1つのコアを前記保留にするステップが、所定の頻度で動的に開始される(502、504)、請求項8に記載の方法。 請求項12 マルチコアシステム内のコアの活動を前記監視するステップが所定の期間にわたって実行され(420)、前記コアの活動に応じて少なくとも1つのコアを前記保留にするステップが、前記監視されたコアの活動によって検出された電力節約の機会に応じて動的に実行される(210、214、220)、請求項8に記載の方法。 請求項13 前記コアの活動に応じて少なくとも1つのコアを前記保留にするステップが、プログラムスケジュールに関連付けられたアフィニティマスクによって許可されたとおりに保留解除コアへの作業切り替えを行うステップ(712、714)を含む、請求項8に記載の方法。 請求項14 修正されたコアの活動を作成するために前記監視されたコアの活動を修正する(508)ステップと、前記電力ポリシーに基づいて、前記修正されたコアの活動に応じて少なくとも1つのコアを保留解除する(512)ステップと、少なくとも1つのスレッドを前記少なくとも1つの保留解除コアに再割り当てする(514)ステップとをさらに含む、請求項8に記載の方法。 請求項15 複数のプロセッサー(104)と、前記複数のプロセッサーに結合されたコントローラー(106)であって、パフォーマンススケジュールを実施するための、電力節約ポリシーを実施するための、および前記複数のプロセッサーの1つまたは複数を保留にすることにより、前記パフォーマンススケジュールと前記電力節約ポリシーとのバランスを取るためのコントローラーとを備えた、多重論理プロセッサーシステム。 請求項16 前記コントローラーが、システムメモリーに常駐しているカーネル電力マネージャー(114)から電力節約ポリシーを実施するための命令を受け取る、請求項15に記載のシステム。 請求項17 前記電力節約ポリシー(702)が、作業をスケジューリングする(116、220)ための基になるプロセッサーの結果セットを決定するためにプログラムモジュールスケジュールと結合されたコア保留マスク(202)を含む、請求項15に記載のシステム。 請求項18 前記複数のプロセッサーが、複数のコアを有する少なくとも1つのコアブロック(300)を含む、請求項15に記載のシステム。 請求項19 前記パフォーマンススケジュールと前記電力節約ポリシーとのバランスを取るステップが、少なくとも1つの保留コアを有する前記コアブロック(318、714)内の保留解除コアにコア保留優先順位付けを作成するステップを含む、請求項18に記載のシステム。 請求項20 少なくとも1つの保留解除コアの前記電力状態を調整する(520)ステップをさらに含む、請求項15に記載のシステム。
类似技术:
公开号 | 公开日 | 专利标题 US20180212842A1|2018-07-26|Managing data center resources to achieve a quality of service Lo et al.2014|Towards energy proportionality for large-scale latency-critical workloads JP6646114B2|2020-02-14|動的仮想マシンサイジング US9535736B2|2017-01-03|Providing service quality levels through CPU scheduling Sarood et al.2014|Maximizing throughput of overprovisioned hpc data centers under a strict power budget US8904205B2|2014-12-02|Increasing power efficiency of turbo mode operation in a processor JP6386165B2|2018-09-05|分散コンピュータシステムへの電力割り振りに変更がある場合に中断され得るジョブ及び中断され得ないジョブを管理するための方法並びに装置 Paya et al.2015|Energy-aware load balancing and application scaling for the cloud ecosystem Xu et al.2016|Warped-slicer: efficient intra-SM slicing through dynamic resource partitioning for GPU multiprogramming DE102013104328B4|2018-05-24|Aufgabenzuteilung in großen und kleinen Kernen JP6289444B2|2018-03-07|利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置 Beloglazov et al.2012|Energy-aware resource allocation heuristics for efficient management of data centers for cloud computing US8914515B2|2014-12-16|Cloud optimization using workload analysis KR101907564B1|2018-10-12|운영 체제 분리형 이종 컴퓨팅 기법 Isci et al.2006|An analysis of efficient multi-core global power management policies: Maximizing performance for a given power budget US8645733B2|2014-02-04|Virtualized application power budgeting US20160018877A1|2016-01-21|Reducing power consumption in a server cluster US9086925B2|2015-07-21|Methods of processing core selection for applications on manycore processors TWI574204B|2017-03-11|對每一核心提供電壓及頻率控制之技術 Verma et al.2008|Power-aware dynamic placement of hpc applications Sridharan et al.2014|Adaptive, efficient, parallel execution of parallel programs US8914805B2|2014-12-16|Rescheduling workload in a hybrid computing environment US6986069B2|2006-01-10|Methods and apparatus for static and dynamic power management of computer systems JP4543081B2|2010-09-15|リソースの割り当ておよび制限を介するヘテロジニアスチップマルチプロセッサのための装置および方法 ES2305216T3|2008-11-01|Metodo para establecer niveles de prioridad en un sistema de computo de multiprogramacion con planificacion por prioridades, sistema de computo de multiprogramacion y programa para esto.
同族专利:
公开号 | 公开日 RU2010139638A|2012-04-10| US9003215B2|2015-04-07| EP2257861A1|2010-12-08| KR101629155B1|2016-06-21| CN101981529B|2013-09-11| TWI464570B|2014-12-11| WO2009120427A1|2009-10-01| BRPI0907774A2|2015-07-14| US8010822B2|2011-08-30| KR20160005367A|2016-01-14| BRPI0907774B1|2020-06-02| US20090249094A1|2009-10-01| JP5075274B2|2012-11-21| EP2257861A4|2017-10-25| KR20100138954A|2010-12-31| US20110307730A1|2011-12-15| CN101981529A|2011-02-23| TW200941209A|2009-10-01| RU2503987C2|2014-01-10|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 JPH09185589A|1996-01-05|1997-07-15|Toshiba Corp|情報処理システムと情報処理システムの省電力方法| JP2000112585A|1998-10-02|2000-04-21|Toshiba Corp|システムlsi及びパワーマネジメント方法| JP2006302059A|2005-04-22|2006-11-02|Hitachi Ltd|複合型計算機装置およびその管理方法| JP2009037335A|2007-07-31|2009-02-19|Toshiba Corp|電源管理装置及び電源管理方法|JP2011070661A|2009-09-26|2011-04-07|Intel Corp|マルチコアプロセッサの低電力動作の方法及び装置| JP2013536532A|2010-08-26|2013-09-19|アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvancedMicroDevicesIncorporated|処理ノードの動的パフォーマンス制御| JP2014235746A|2013-05-30|2014-12-15|三星電子株式会社Samsung Electronics Co.,Ltd.|Multi-core apparatus and job scheduling method for multi-core apparatus| JP2015118434A|2013-12-17|2015-06-25|インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation|演算コア上で複数の演算処理単位が稼働可能なコンピュータ・システムにおける応答性能を評価する計算方法、計算装置、コンピュータ・システムおよびプログラム|US5530932A|1994-12-23|1996-06-25|Intel Corporation|Cache coherent multiprocessing computer system with reduced power operating features| US7137117B2|2000-06-02|2006-11-14|Microsoft Corporation|Dynamically variable idle time thread scheduling| US6901522B2|2001-06-07|2005-05-31|Intel Corporation|System and method for reducing power consumption in multiprocessor system| US7174467B1|2001-07-18|2007-02-06|Advanced Micro Devices, Inc.|Message based power management in a multi-processor system| US6804632B2|2001-12-06|2004-10-12|Intel Corporation|Distribution of processing activity across processing hardware based on power consumption considerations| US7318164B2|2001-12-13|2008-01-08|International Business Machines Corporation|Conserving energy in a data processing system by selectively powering down processors| US7093147B2|2003-04-25|2006-08-15|Hewlett-Packard Development Company, L.P.|Dynamically selecting processor cores for overall power efficiency| US20050050310A1|2003-07-15|2005-03-03|Bailey Daniel W.|Method, system, and apparatus for improving multi-core processor performance| US7111182B2|2003-08-29|2006-09-19|Texas Instruments Incorporated|Thread scheduling mechanisms for processor resource power management| KR100673690B1|2004-01-13|2007-01-24|엘지전자 주식회사|복수의 코어가 구비된 프로세서의 전원 제어방법| US7315952B2|2004-06-02|2008-01-01|Intel Corporation|Power state coordination between devices sharing power-managed resources| US7676655B2|2004-06-30|2010-03-09|Sun Microsystems, Inc.|Single bit control of threads in a multithreaded multicore processor| US7437581B2|2004-09-28|2008-10-14|Intel Corporation|Method and apparatus for varying energy per instruction according to the amount of available parallelism| US7788670B2|2004-10-26|2010-08-31|Intel Corporation|Performance-based workload scheduling in multi-core architectures| US20060123422A1|2004-12-02|2006-06-08|International Business Machines Corporation|Processor packing in an SMP server to conserve energy| US7526661B2|2004-12-02|2009-04-28|Intel Corporation|Performance state-based thread management| US7502948B2|2004-12-30|2009-03-10|Intel Corporation|Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores| US20060212677A1|2005-03-15|2006-09-21|Intel Corporation|Multicore processor having active and inactive execution cores| US20070204268A1|2006-02-27|2007-08-30|Red. Hat, Inc.|Methods and systems for scheduling processes in a multi-core processor environment| US7574613B2|2006-03-14|2009-08-11|Microsoft Corporation|Scaling idle detection metric for power management on computing device| US7490256B2|2006-04-04|2009-02-10|Microsoft Corporation|Identifying a target processor idle state| US7752468B2|2006-06-06|2010-07-06|Intel Corporation|Predict computing platform memory power utilization| US7992151B2|2006-11-30|2011-08-02|Intel Corporation|Methods and apparatuses for core allocations| US7900069B2|2007-03-29|2011-03-01|Intel Corporation|Dynamic power reduction| US7966506B2|2007-12-12|2011-06-21|Intel Corporation|Saving power in a computer system| US7962770B2|2007-12-19|2011-06-14|International Business Machines Corporation|Dynamic processor reconfiguration for low power without reducing performance based on workload execution characteristics| US8010822B2|2008-03-28|2011-08-30|Microsoft Corporation|Power-aware thread scheduling and dynamic use of processors|CN101390067B|2006-02-28|2012-12-05|英特尔公司|增强众核处理器的可靠性| GB0614515D0|2006-07-21|2006-08-30|Ibm|An apparatus for managing power-consumption| US8112648B2|2008-03-11|2012-02-07|Globalfoundries Inc.|Enhanced control of CPU parking and thread rescheduling for maximizing the benefits of low-power state| AU2010221723A1|2009-03-03|2011-09-22|The Coca-Cola Company|Bio-based polyethylene terephthalate packaging and method of making thereof| US8010822B2|2008-03-28|2011-08-30|Microsoft Corporation|Power-aware thread scheduling and dynamic use of processors| US20090320031A1|2008-06-19|2009-12-24|Song Justin J|Power state-aware thread scheduling mechanism| US8296773B2|2008-06-30|2012-10-23|International Business Machines Corporation|Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance| US20100058086A1|2008-08-28|2010-03-04|Industry Academic Cooperation Foundation, Hallym University|Energy-efficient multi-core processor| US8473964B2|2008-09-30|2013-06-25|Microsoft Corporation|Transparent user mode scheduling on traditional threading systems| US8321874B2|2008-09-30|2012-11-27|Microsoft Corporation|Intelligent context migration for user mode scheduling| US8209554B2|2009-02-23|2012-06-26|International Business Machines Corporation|Applying power management on a partition basis in a multipartitioned computer system| US8689017B2|2009-03-12|2014-04-01|Cisco Technology, Inc.|Server power manager and method for dynamically managing server power consumption| US8271818B2|2009-04-30|2012-09-18|Hewlett-Packard Development Company, L.P.|Managing under-utilized resources in a computer| US8239699B2|2009-06-26|2012-08-07|Intel Corporation|Method and apparatus for performing energy-efficient network packet processing in a multi processor core system| US8683476B2|2009-06-30|2014-03-25|Oracle America, Inc.|Method and system for event-based management of hardware resources using a power state of the hardware resources| US9146755B2|2009-07-08|2015-09-29|Kaseya Limited|System and method for transporting platform independent power configuration parameters| US8428930B2|2009-09-18|2013-04-23|International Business Machines Corporation|Page mapped spatially aware emulation of a computer instruction set| US8578384B2|2009-10-28|2013-11-05|Freescale Semiconductor, Inc.|Method and apparatus for activating system components| KR101648978B1|2009-11-05|2016-08-18|삼성전자주식회사|저전력 멀티코어 시스템에서의 전력 제어 방법 및 장치| US9098274B2|2009-12-03|2015-08-04|Intel Corporation|Methods and apparatuses to improve turbo performance for events handling| US8850404B2|2009-12-23|2014-09-30|Intel Corporation|Relational modeling for performance analysis of multi-core processors using virtual tasks| US8572622B2|2009-12-30|2013-10-29|International Business Machines Corporation|Reducing queue synchronization of multiple work items in a system with high memory latency between processing nodes| US9462556B2|2010-03-22|2016-10-04|Freescale Semiconductor, Inc.|Integrated circuit device, signal processing system, electronic device and method for configuring a signal processing operating mode| US8335935B2|2010-03-29|2012-12-18|Intel Corporation|Power management based on automatic workload detection| US8607083B2|2010-04-01|2013-12-10|Intel Corporation|Method and apparatus for interrupt power management| US8381004B2|2010-05-26|2013-02-19|International Business Machines Corporation|Optimizing energy consumption and application performance in a multi-core multi-threaded processor system| US9311102B2|2010-07-13|2016-04-12|Advanced Micro Devices, Inc.|Dynamic control of SIMDs| JP6130296B2|2010-07-13|2017-05-17|アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated|Dynamic enabling and disabling of SIMD units in graphics processors| US8736619B2|2010-07-20|2014-05-27|Advanced Micro Devices, Inc.|Method and system for load optimization for power| US8631253B2|2010-08-17|2014-01-14|Red Hat Israel, Ltd.|Manager and host-based integrated power saving policy in virtualization systems| US8656408B2|2010-09-30|2014-02-18|International Business Machines Corporations|Scheduling threads in a processor based on instruction type power consumption| US8677361B2|2010-09-30|2014-03-18|International Business Machines Corporation|Scheduling threads based on an actual power consumption and a predicted new power consumption| WO2012069881A1|2010-11-25|2012-05-31|Freescale Semiconductor, Inc.|Method and apparatus for managing power in a multi-core processor| US20120137289A1|2010-11-30|2012-05-31|International Business Machines Corporation|Protecting high priority workloads in a virtualized datacenter| US9069555B2|2011-03-21|2015-06-30|Intel Corporation|Managing power consumption in a multi-core processor| US8924752B1|2011-04-20|2014-12-30|Apple Inc.|Power management for a graphics processing unit or other circuit| US9804874B2|2011-04-20|2017-10-31|Microsoft Technology Licensing, Llc|Consolidation of idle virtual machines on idle logical processors| US20120284729A1|2011-05-03|2012-11-08|Microsoft Corporation|Processor state-based thread scheduling| US9086883B2|2011-06-10|2015-07-21|Qualcomm Incorporated|System and apparatus for consolidated dynamic frequency/voltage control| KR101812583B1|2011-07-21|2018-01-30|삼성전자주식회사|태스크 할당 장치, 태스크 할당 방법 및 컴퓨터로 읽을 수 있는 저장 매체| GB2507696B|2011-09-06|2017-08-02|Intel Corp|Power efficient processor architecture| US9129060B2|2011-10-13|2015-09-08|Cavium, Inc.|QoS based dynamic execution engine selection| US9128769B2|2011-10-13|2015-09-08|Cavium, Inc.|Processor with dedicated virtual functions and dynamic assignment of functional resources| US10114679B2|2011-10-26|2018-10-30|Microsoft Technology Licensing, Llc|Logical CPU division usage heat map representation| CN102945162B|2011-10-26|2016-12-21|微软技术许可有限责任公司|用于设备实现逻辑cpu划分的使用热度图表示的方法和装置| TWI493332B|2011-11-29|2015-07-21|Intel Corp|用於電力管理的方法與設備及其平台與電腦可讀取媒體| US8862909B2|2011-12-02|2014-10-14|Advanced Micro Devices, Inc.|System and method for determining a power estimate for an I/O controller based on monitored activity levels and adjusting power limit of processing units by comparing the power estimate with an assigned power limit for the I/O controller| US8924758B2|2011-12-13|2014-12-30|Advanced Micro Devices, Inc.|Method for SOC performance and power optimization| US8881145B2|2011-12-15|2014-11-04|Industrial Technology Research Institute|System and method for generating application-level dependencies in one or more virtual machines| US9372524B2|2011-12-15|2016-06-21|Intel Corporation|Dynamically modifying a power/performance tradeoff based on processor utilization| US8856566B1|2011-12-15|2014-10-07|Apple Inc.|Power management scheme that accumulates additional off time for device when no work is available and permits additional power consumption by device when awakened| US9436512B2|2011-12-22|2016-09-06|Board Of Supervisors Of Louisana State University And Agricultural And Mechanical College|Energy efficient job scheduling in heterogeneous chip multiprocessors based on dynamic program behavior using prim model| US9137848B2|2012-01-31|2015-09-15|Lg Electronics Inc.|Mobile terminal, controlling method thereof and recording medium thereof| WO2013115821A1|2012-02-02|2013-08-08|Empire Technolgy Development Llc|Quality of service targets in multicore processors| US9110777B2|2012-02-14|2015-08-18|International Business Machines Corporation|Reducing performance degradation in backup semiconductor chips| JP5554358B2|2012-03-23|2014-07-23|株式会社東芝|マルチプロセッサシステムおよび電力制御方法| JP5853817B2|2012-03-28|2016-02-09|富士通株式会社|情報処理装置、制御方法及び制御プログラム| KR101899811B1|2012-04-04|2018-09-20|엘지전자 주식회사|이동 단말기 및 그 제어 방법, 이를 위한 기록 매체| US8726255B2|2012-05-01|2014-05-13|Concurix Corporation|Recompiling with generic to specific replacement| US8650538B2|2012-05-01|2014-02-11|Concurix Corporation|Meta garbage collection for functional code| US9390461B1|2012-05-08|2016-07-12|Apple Inc.|Graphics hardware mode controls| US9035956B1|2012-05-08|2015-05-19|Apple Inc.|Graphics power control with efficient power usage during stop| US9176563B2|2012-05-14|2015-11-03|Broadcom Corporation|Leakage variation aware power management for multicore processors| CN102707996A|2012-05-15|2012-10-03|江苏中科梦兰电子科技有限公司|一种异构多核处理器上的任务调度方法| US9250665B2|2012-06-07|2016-02-02|Apple Inc.|GPU with dynamic performance adjustment| CN102779075B|2012-06-28|2014-12-24|华为技术有限公司|一种在多处理器核系统中进行调度的方法、装置及系统| US8904204B2|2012-06-29|2014-12-02|International Business Machines Corporation|Managing computing resources through aggregated core management| US8793669B2|2012-07-17|2014-07-29|Concurix Corporation|Pattern extraction from executable code in message passing environments| US9575813B2|2012-07-17|2017-02-21|Microsoft Technology Licensing, Llc|Pattern matching process scheduler with upstream optimization| EP2880531B1|2012-08-02|2017-11-08|Siemens Corporation|Pipelining for cyclic control systems| US8943252B2|2012-08-16|2015-01-27|Microsoft Corporation|Latency sensitive software interrupt and thread scheduling| US20140089699A1|2012-09-27|2014-03-27|Advanced Micro Devices|Power management system and method for a processor| US10585801B2|2012-11-26|2020-03-10|Advanced Micro Devices, Inc.|Prefetch kernels on a graphics processing unit| US9182807B2|2012-12-31|2015-11-10|Hewlett-Packard Development Company, L.P.|Systems and methods for predictive power management in a computing center| JP6042217B2|2013-01-28|2016-12-14|ルネサスエレクトロニクス株式会社|半導体装置、電子装置、及び半導体装置の制御方法| EP2778915A1|2013-03-13|2014-09-17|Siemens Aktiengesellschaft|Verfahren zum Betrieb einer Industriesteuerung und Industriesteuerung| US9727345B2|2013-03-15|2017-08-08|Intel Corporation|Method for booting a heterogeneous system and presenting a symmetric core view| CN105210038B|2013-05-15|2018-10-30|英派尔科技开发有限公司|核亲和性位掩码变换| US9629020B2|2013-05-28|2017-04-18|Rivada Networks, Llc|Methods and systems for data context and management via dynamic spectrum controller and dynamic spectrum policy controller| US9195291B2|2013-06-21|2015-11-24|Apple Inc.|Digital power estimator to control processor power consumption| US9304573B2|2013-06-21|2016-04-05|Apple Inc.|Dynamic voltage and frequency management based on active processors| US20160170474A1|2013-08-02|2016-06-16|Nec Corporation|Power-saving control system, control device, control method, and control program for server equipped with non-volatile memory| US9495001B2|2013-08-21|2016-11-15|Intel Corporation|Forcing core low power states in a processor| US20150081400A1|2013-09-19|2015-03-19|Infosys Limited|Watching ARM| US9927866B2|2013-11-21|2018-03-27|Qualcomm Incorporated|Method and system for optimizing a core voltage level and enhancing frequency performance of individual subcomponents for reducing power consumption within a PCD| US9541985B2|2013-12-12|2017-01-10|International Business Machines Corporation|Energy efficient optimization in multicore processors under quality of service /performance constraints| KR20150090788A|2014-01-29|2015-08-06|삼성전자주식회사|태스크 스케줄링 방법 및 장치| US9652298B2|2014-01-29|2017-05-16|Vmware, Inc.|Power-aware scheduling| US9189273B2|2014-02-28|2015-11-17|Lenovo Enterprise Solutions PTE. LTD.|Performance-aware job scheduling under power constraints| US9606605B2|2014-03-07|2017-03-28|Apple Inc.|Dynamic voltage margin recovery| US9354943B2|2014-03-19|2016-05-31|International Business Machines Corporation|Power management for multi-core processing systems| US9195493B2|2014-03-27|2015-11-24|International Business Machines Corporation|Dispatching multiple threads in a computer| US20150355942A1|2014-06-04|2015-12-10|Texas Instruments Incorporated|Energy-efficient real-time task scheduler| US10162683B2|2014-06-05|2018-12-25|International Business Machines Corporation|Weighted stealing of resources| US10082858B2|2014-06-23|2018-09-25|Mellanox Technologies, Ltd.|Peripheral device assistance in reducing CPU power consumption| US9395797B2|2014-07-02|2016-07-19|Freescale Semiconductor, Inc.|Microcontroller with multiple power modes| US9785481B2|2014-07-24|2017-10-10|Qualcomm Innovation Center, Inc.|Power aware task scheduling on multi-processor systems| US10324513B2|2014-08-31|2019-06-18|Mellanox Technologies, Ltd.|Control of peripheral device data exchange based on CPU power state| US9424092B2|2014-09-26|2016-08-23|Microsoft Technology Licensing, Llc|Heterogeneous thread scheduling| US9489242B2|2014-09-30|2016-11-08|Telefonaktiebolaget L M Ericsson |Algorithm for faster convergence through affinity override| US9190989B1|2014-10-07|2015-11-17|Freescale Semiconductor, Inc.|Integrated circuit power management| US9891699B2|2014-12-18|2018-02-13|Vmware, Inc.|System and method for performing distributed power management without power cycling hosts| US9588811B2|2015-01-06|2017-03-07|Mediatek Inc.|Method and apparatus for analysis of thread latency| US9652027B2|2015-04-01|2017-05-16|Microsoft Technology Licensing, Llc|Thread scheduling based on performance state and idle state of processing units| US20160314024A1|2015-04-24|2016-10-27|Mediatek Inc.|Clearance mode in a multicore processor system| US9760160B2|2015-05-27|2017-09-12|Intel Corporation|Controlling performance states of processing engines of a processor| US10558500B2|2015-07-27|2020-02-11|Hewlett Packard Enterprise Development Lp|Scheduling heterogenous processors| US9710041B2|2015-07-29|2017-07-18|Intel Corporation|Masking a power state of a core of a processor| US10073718B2|2016-01-15|2018-09-11|Intel Corporation|Systems, methods and devices for determining work placement on processor cores| US10146287B2|2016-04-01|2018-12-04|Intel Corporation|Processor power monitoring and control with dynamic load balancing| US10133341B2|2016-06-06|2018-11-20|Arm Limited|Delegating component power control| CN106201726A|2016-07-26|2016-12-07|张升泽|多内核芯片线程分配方法及系统| US10379904B2|2016-08-31|2019-08-13|Intel Corporation|Controlling a performance state of a processor using a combination of package and thread hint information| US10503238B2|2016-11-01|2019-12-10|Microsoft Technology Licensing, Llc|Thread importance based processor core parking and frequency selection| US10372494B2|2016-11-04|2019-08-06|Microsoft Technology Licensing, Llc|Thread importance based processor core partitioning| CN107239348B|2017-06-23|2020-05-15|厦门美图移动科技有限公司|一种多核处理器调度方法、装置及移动终端| RU2703188C1|2017-10-05|2019-10-15|НФВаре, Инц|Способ распределения нагрузки в многоядерной системе| US20190146567A1|2017-11-10|2019-05-16|Advanced Micro Devices, Inc.|Processor throttling based on accumulated combined current measurements| US10721172B2|2018-07-06|2020-07-21|Marvell Asia Pte, Ltd.|Limiting backpressure with bad actors|
法律状态:
2012-02-07| A871| Explanation of circumstances concerning accelerated examination|Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20120206 | 2012-02-07| A621| Written request for application examination|Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120206 | 2012-02-07| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120206 | 2012-02-27| A975| Report on accelerated examination|Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20120224 | 2012-03-29| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120328 | 2012-06-26| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120625 | 2012-07-24| TRDD| Decision of grant or rejection written| 2012-07-27| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120726 | 2012-08-02| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 | 2012-08-30| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120824 | 2012-08-31| R150| Certificate of patent or registration of utility model|Ref document number: 5075274 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 | 2012-09-03| FPAY| Renewal fee payment (event date is renewal date of database)|Free format text: PAYMENT UNTIL: 20150831 Year of fee payment: 3 | 2015-04-15| S111| Request for change of ownership or part of ownership|Free format text: JAPANESE INTERMEDIATE CODE: R313113 | 2015-04-23| R350| Written notification of registration of transfer|Free format text: JAPANESE INTERMEDIATE CODE: R350 | 2015-08-11| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2016-08-02| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2017-08-08| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2018-08-07| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2019-08-06| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2020-07-31| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2021-07-30| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|